#ifndef MARK_H_
#define MARK_H_

#include "Matrix.h"

namespace reg
{
	double Rand(const double&,const double&);
	void variable(double *);
	void variable(const double&,const double&,const double&,const double&,const double&,const double&,double**,const int&);
	const Matrix& varible(const double&,const double&,const double&,const double&,const double&,const double&);
	void mnk(const Matrix&,const Matrix&, double*);
	void sample(const Matrix&,double*);
	void dmnk(const Matrix&,const Matrix&,const Matrix&,const Matrix&, double*);
	void MonteCarlo(Matrix&, Matrix&, const Matrix&, Matrix&, const Matrix&, const Matrix&,
					const double&,const double&,const double&,
					const double&,const double&,const double&);
	double K(const double &);
	double MarkKernel(const double&, const double&, const double *const,const int&);
	double min(const double* const, const int&);
	double max(const double* const, const int&);
	
	void printMarkKernel(const double* const, const int&, const double&, const std::string);
};
#endif /* MARK_H_ */
